package com.sumainfor.pc.gmio.feign.extend;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sumainfor.common.util.JsonResult;
import org.springframework.web.bind.annotation.*;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 房源
 */
public interface HouseFeign {

//////////小马

    /**
     * 根据位置查询小区
     **/
    @RequestMapping("/key/Haudit/getComName")
    JsonResult getComName(@RequestParam("params") Map<String, Object> params);

    /**
     * 根据小区查询楼号
     **/
    @RequestMapping("/key/Haudit/getBuilding")
    JsonResult getBuilding(@RequestParam("params") Map<String, Object> params);

    /**
     * 根据小区查询楼号
     **/
    @RequestMapping("/key/Haudit/getRoom")
    JsonResult getRoom(@RequestParam("params") Map<String, Object> params);


    /**
     * 新增新增厨房区域(管家验房的图片)
     **/
    @PostMapping("/key/Haudit/saveHouingKitchenFile")
    JsonResult saveHouingKitchenFile(@RequestBody Map<String, Object> params);


    /**
     * 查询厨房区域(管家验房的图片)
     **/
    @RequestMapping("/key/Haudit/gethousingKitchenFileByid")
    JsonResult gethousingKitchenFileByid(@RequestParam("params") Map<String, Object> params);


    /**
     * 新增新增餐厅区域(管家验房的图片)
     **/
    @PostMapping("/key/Haudit/saveHouingToiletFile")
    JsonResult saveHouingToiletFile(@RequestBody Map<String, Object> params);


    /**
     * 查询餐厅区域(管家验房的图片)
     **/
    @RequestMapping("/key/Haudit/gethousingToiletFileByid")
    JsonResult gethousingToiletFileByid(@RequestParam("params") Map<String, Object> params);


    /**
     * 新增新增餐厅区域(管家验房的图片)
     **/
    @PostMapping("/key/Haudit/saveHouingDiningFile")
    JsonResult saveHouingDiningFile(@RequestBody Map<String, Object> params);

    /**
     * 新增新增餐厅区域(管家验房的图片)
     **/
    @PostMapping("/key/Haudit/saveHouingHouseImg")
    JsonResult saveHouingHouseImg(@RequestBody Map<String, Object> params);


    /**
     * 新增新增餐厅区域(管家验房的图片)
     **/
    @PostMapping("/key/Haudit/saveHouingShowImg")
    JsonResult saveHouingShowImg(@RequestBody Map<String, Object> params);

    /**
     * 查询餐厅区域(管家验房的图片)
     **/
    @RequestMapping("/key/Haudit/gethousingDiningFileByid")
    JsonResult gethousingDiningFileByid(@RequestParam("params") Map<String, Object> params);


    /**
     * 查询各个房间(管家验房的图片)
     **/
    @RequestMapping("/key/Haudit/gethousingShowImgByid")
    JsonResult gethousingShowImgByid(@RequestParam("params") Map<String, Object> params);

    /**
     * 查询各个房间(管家验房的图片)
     **/
    @RequestMapping("/key/Haudit/getHousingConInfo")
    JsonResult getHousingConInfo(@RequestParam("params") Map<String, Object> params);


    @RequestMapping("/key/Haudit/gethousingHouseImgByid")
    JsonResult gethousingHouseImgByid(@RequestParam("params") Map<String, Object> params);

    /**
     * 新增各个房间(管家验房的图片)
     **/
    @PostMapping("/key/Haudit/saveHouingInfoFile")
    JsonResult saveHouingInfoFile(@RequestBody Map<String, Object> params);

    /**
     * 查询各个房间(管家验房的图片)
     **/
    @RequestMapping("/key/Haudit/getocuntHouging")
    JsonResult getocuntHouging(@RequestParam("params") Map<String, Object> params);

    @RequestMapping("/key/Haudit/updateAccepted")
    JsonResult updateAccepted(@RequestParam("params") Map<String, Object> params);

    @RequestMapping("/key/Haudit/gethousingByState")
    JsonResult gethousingByState(@RequestParam("params") Map<String, Object> params);

    /**
     * 通过房源详表编号查询 运营部所需要的数据
     *
     * @param houInfoId
     * @return
     */
    @PostMapping("/key/run/provider/getHousingInfoById")
    JsonResult getHousingInfoById(@RequestParam("houInfoId") String houInfoId);


    /**
     * 获得房源信息 业主提前收房用
     *
     * @param houId
     * @return
     */
    @PostMapping("/key/run/provider/getOmHousingInfoById")
    Map<String, Object> getOmHousingInfoById(@RequestParam("houId") String houId);


    /**
     * 获得房源信息 业主提前收房用
     *
     * @param params
     * @return
     */
    @PostMapping("/key/run/provider/updateOwCallInfo")
    JsonResult updateOwCallInfo(@RequestBody Map<String, Object> params);

    /**
     * 修改业主人员信息
     *
     * @param list
     * @return
     */
    @PostMapping("/key/run/provider/updateOwPeopleInfo")
    JsonResult updateOwPeopleInfo(@RequestBody List<Map<String, Object>> list);


    /**
     * 修改业主银行收款信息
     *
     * @param params
     * @return
     */
    @PostMapping("/key/run/provider/updateOwPactInfo")
    JsonResult updateOwPactInfo(@RequestBody Map<String, Object> params);


    /**
     * 获取业主资料信息通过业主的手机号或者业主编号
     *
     * @param params
     * @return
     */
    @PostMapping("/key/run/provider/getOwnerInfoByParams")
    Map<String, Object> getOwnerInfoByParams(@RequestBody Map<String, Object> params);


    /**
     * 获取业主履行中的合同信息
     *
     * @param ownerId
     * @return
     */
    @PostMapping("/key/run/provider/selectOwnerPactList")
    List<Map<String, Object>> selectOwnerPactList(@RequestBody List<String> ownerId);


    /**
     * 查询业主人员信息数据
     *
     * @param houId
     * @return
     */
    @PostMapping("/key/run/provider/getOwnerPeopleData")
    List<Map<String, Object>> getOwnerPeopleData(@RequestParam("houId") String houId);


    /**
     * 通过业主编号查询这个业主的房源所在地理位置
     *
     * @param ownerId
     * @return
     */
    @PostMapping("/key/run/provider/getAddressInfo")
    Map<String, Object> getAddressInfo(@RequestParam("ownerId") String ownerId);

    /**
     * 根据业主信息 去查询业主原来的收款信息
     *
     * @param owId
     * @return
     */
    @PostMapping("/key/run/provider/getOwnerOldBlankInfo")
    Map<String, Object> getOwnerOldBlankInfo(@RequestParam("owId") String owId);


    /**
     * 通过业主的手机号码 查询业主信息
     *
     * @param phone
     * @return
     */
    @PostMapping("/key/run/provider/getOwnerInfoListByPhone")
    List<Map<String, Object>> getOwnerInfoListByPhone(@RequestParam("phone") String phone);


    /**
     * 功能描述:
     * 首月支付完成之后修改合同状态为已支付
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/3/27 17:47
     */
    @ResponseBody
    @PostMapping("/key/pact/UpdatePayPact")
    JsonResult UpdatePayPact(@RequestBody Map<String, Object> params);


    /**
     * 退租账单查询列表数据
     *
     * @param page
     * @param params
     * @return
     */
    @PostMapping("/key/run/provider/selectSurrenderList")
    Page<Map<String, Object>> selectSurrenderList(@RequestParam Map<String, Object> page, @RequestBody Map<String, Object> params);


    /**
     * 查询合同到期时间
     *
     * @param pactId
     * @return
     */
    @PostMapping("/key/run/provider/getPactPastTime")
    String getPactPastTime(@RequestParam("pactId") String pactId);

    /**
     * 查询活动名称
     *
     * @param actId
     * @return
     */
    @PostMapping("/key/run/provider/getActivateNameById")
    String getActivateNameById(@RequestParam("actId") String actId);

    /**
     * 功能描述:
     * 根据业主手机号获取业主所有账单总数
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/4/1 10:20
     */
    @GetMapping("/key/owner/getOwnerBillList")
    JsonResult getOwnerBillList(@RequestParam Map<String, Object> params);


    ///////////////////////////////////////////////////////////////////////////
    // 地区收费标准
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 根据服务中心的编号查询小区数据列表
     *
     * @param params * @param centerId + 分页
     * @return
     */
    @PostMapping("/key/run/provider/selectProjectByCenterId")
    Page<Map<String, Object>> selectProjectByCenterId(@RequestParam Map<String, Object> params);

    /**
     * 根据项目的编号查询房源的数据列表
     *
     * @param params :projectId
     * @return
     */
    @PostMapping("/key/run/provider/selectHousingListView")
    Page<Map<String, Object>> selectHousingListView(@RequestBody Map<String, Object> params);

    /**
     * 根据Type类型 与编号查询 数据
     *
     * @param type 1. 项目 2. 房源
     * @param id
     * @return
     */
    @PostMapping("/provider/key/financial/selectHousingForType")
    Map<String, Object> selectHousingForType(@RequestParam("type") Integer type, @RequestParam("id") String id);




    @PostMapping("/provider/key/financial/getHousingInfoByIdsss")
    List<Map<String,Object>> getHousingInfoByIdsss(@RequestBody Map<String,Object> params);


    ///////////////////////////////////////////////////////////////////////////
    // 财务部
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 筛选小区数据 返回小区编号
     *
     * @param params
     * @return
     */
    @PostMapping("/provider/key/financial/filterHousingData")
    List<Map<String, Object>> filterHousingData(@RequestBody Map<String, Object> params);


    /**
     * 根据业主编号 查询合同的信息
     *
     * @param ownerId
     * @return
     */
    @PostMapping("/provider/key/financial/selectOwnerPactInfo")
    Map<String, Object> selectOwnerPactInfo(@RequestParam("ownerId") String ownerId);

    /**
     * 查询租客合同信息
     *
     * @param tenantId
     * @param hinfoId
     * @return
     */
    @PostMapping("/provider/key/financial/getTenantPactId")
    Map<String, Object> getTenantPactId(@RequestParam("tenantId") String tenantId, @RequestParam("hinfoId") String hinfoId);

    /**
     * 查询房源数据
     *
     * @param hInfoId
     * @return
     */
    @PostMapping("/provider/key/financial/selectHousingInfo")
    Map<String, Object> selectHousingInfo(@RequestParam("hInfoId") String hInfoId);

    /**
     * 功能描述:
     * 根据账单资料来源编号获取合同资料
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/4/28 15:00
     */
    @GetMapping("/key/pact/getTrenantBillPact")
    JsonResult getTrenantBillPact(@RequestParam Map<String, Object> params);

    /**
     * 筛选小区编号 根据服务中心编号集合
     *
     * @param params: hIds
     *                miIds
     * @return
     */
    @PostMapping("/provider/key/financial/filterCenterForHousing")
    JsonResult filterCenterForHousing(@RequestBody Map<String, Object> params);

    /**
     * 功能描述:
     * 获取所有房源资料(字段可扩展)
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/6/17 18:57
     */
    @GetMapping("/key/hou/getAllHousingLists")
    List<Map<String, Object>> getAllHousingLists();

    /**
     * 功能描述:
     * 获取所有的合同列表
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/6/17 19:38
     */
    @GetMapping("/key/pact/getAllPactList")
    List<Map<String, Object>> getAllPactList();

    ///////////////////////////////////////////////////////////////////////////
    // ----------
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 根据房源编号过滤这个项目下的房源信息
     *
     * @param params hIds :Array
     *               val :String
     *               col :String
     *               where :String
     * @return
     */
    @PostMapping("/key/hou/selectComIdByHId")
    JsonResult selectComIdByHId(@RequestBody Map<String, Object> params);

    /**
     * 根据房源主编号查询房源基本信息资料数据
     *
     * @param hIds
     * @return
     */
    @PostMapping("/key/hou/selectHousingDetailByArray")
    JsonResult selectHousingDetailByArray(@RequestBody Collection<String> hIds);


    /**
     * 查找房间号通过房源配置编号
     *
     * @param ids
     * @return
     */
    @PostMapping("/key/hou/getHousingRoom")
    JsonResult getHousingRoom(@RequestBody Collection<String> ids);

    /**
     * 根据服务中心编号，项目编号。楼号。房号。室号获取房源主表和房源详表
     *
     * @return
     */
    @PostMapping("/key/hou/getMiAndComAndBuiAndRoomAndHouList")
    List<Map<String, Object>> getMiAndComAndBuiAndRoomAndHouList(@RequestBody Map<String, Object> params);

    /**
     * 功能描述:
     * 获取所有的业主和业主合同资料
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/6/21 16:19
     */
    @GetMapping("key/owner/getOwnerDealList")
    List<Map<String, Object>> getOwnerDealList();



    @PostMapping("/key/owner/getOwDelListZTime")
    List<Map<String,Object>> getOwDelListZTime(@RequestBody Map<String,Object> params);

    /**
     * 功能描述:
     * 根据租客编号和合同编号获取租客合同资料
     *
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/7/11 21:00
     */
    @GetMapping("/key/pact/getPcatInfoByPaIdAndTenIdMap")
    Map<String, Object> getPcatInfoByPaIdAndTenIdMap(@RequestParam Map<String, Object> params);

    /**
     * 获取合同的pdf文件url路径 通过合同的编号进行查询
     *
     * @param patId
     * @return
     */
    @RequestMapping("/key/pact/getPactPDFLink")
    JsonResult getPactPDFLink(@RequestParam("patId") String patId);

    @PostMapping("/key/hou/getHouIncid")
    List<Map<String,Object>> getHouIncid(@RequestBody Map<String,Object> params);

}
